---
id: contributing
title: 如何贡献代码
description: 如何贡献代码给Knife4j
---


作为一个开源项目，Knife4j 的成长离不开社区贡献者的支持和参与。我们非常欢迎广大社区用户为 Knife4j 贡献代码、文档或改进网站，在此过程中，我们愿意为您提供必要的支持。


## 社区贡献

- 点亮Star，照亮Knife4j开源之路!!
    - [https://gitee.com/xiaoym/knife4j](https://gitee.com/xiaoym/knife4j)
    - [https://github.com/xiaoymin/knife4j](https://github.com/xiaoymin/knife4j)
- 发表你的看法：[Knife4j论坛](https://github.com/xiaoymin/knife4j/discussions)
- 认领开发任务：[Issues](https://gitee.com/xiaoym/knife4j/issues)
- 完善[Knife4j文档](joinus)
- 在你自己的博客、微博、微信公众号、vlog 等自媒体分享有关 Knife4j 的一切。也非常欢迎将实战内容通过PR进行贡献合并在Knife4j的官方文档进行展示。
- 把Knife4j分享给更多的人


## 开源贡献

### Knife4j仓库结构说明


- [knife4j-desktop](https://gitee.com/xiaoym/knife4j/tree/dev/knife4j-desktop):Knife4j的独立中间件，基于Java编写，可以独立运行渲染OpenAPI规范文件
- [knife4j-doc](https://gitee.com/xiaoym/knife4j/tree/dev/knife4j-doc): 官网文档，基于[Docusaurus](https://docusaurus.io/zh-CN/)进行编写
- [knife4j-vue](https://gitee.com/xiaoym/knife4j/tree/dev/knife4j-vue): 前端源码，基于Vue框架编写
- [knife4j](https://gitee.com/xiaoym/knife4j/tree/dev/knife4j): Java端代码，包括所有公开使用的starter组件封装

### 指导方针

- 在开始进行功能或者修复Bug之前，事先请在Github、Gitee平台上搜索与之相关的功能是否已经实现，或着也可以通过Github、Gitee平台的issue与我们取得[联系](community-get-helps)。以确保该任务没有其他人在处理，避免重复操作。
- 所有功能可通过Github或者Gitee的[issues](https://github.com/xiaoymin/swagger-bootstrap-ui/discussions)进行沟通讨论，避免浪费大家的时间。
- 如果是重大功能更新，建议你在编码开发的同时，将该功能的设计、思想、实现以及使用说明通过文档进行输出。最好是合并在Knife4j的官方文档上
- 提交PR时，需要将PR请求提交到**dev分支**！！！
